<?php

/**
 * Subclass for representing a row from the 'estudiante' table.
 *
 * 
 *
 * @package lib.model
 */ 
class Estudiante extends BaseEstudiante
{		
        public  $nombreCompleto='';
	public  $nombreDecanato='';
	public  $datosDelEstudianteConCed='';
	public  $datosAcademicos='';
	public  $datosAcadEstudiante='';	
	public  $datosCarrera = null;
	public  $datosDecanato='';
	public  $datosCitas='';
	public  $datosDirecc=null;
	private $objAteneaUsuarioConCed='';
	
	private $objDatoEstudiante='';
	private $objDatoAcademico='';
	private $nomCarrera='';
	private $objsMaterias=null;
	private $objsEstudiantesCondicion = null;
	
	public  $datosCita='';	
        public  $datosHistoriaMedica=''; 
        public  $datosBeneficios='';
        public  $datosEstudiante='';
        public  $datosConsultas='';
	public  $datosFamiliares='';
	public  $materiasEstud=null;
	public  $materiasRepetidas=null;
	public  $numConsulta= null; 
	
    
	

	function getNombreCompleto()
    {
       $this->nombreCompleto= $this->getNombre().' '.$this->getApellido();
       return $this->nombreCompleto;
    }
    
    function __toString()
    {
    	return $this->getNombreCompleto();
    }

	function getDatosDelEstudianteConCed($ced)
     {

        if ($this->datosDelEstudianteConCed=='')
        {
           $c = new Criteria();
           $c->add(EstudiantePeer::CEDULA, $ced);
           $this->datosDelEstudianteConCed = EstudiantePeer::doSelectOne($c);
        }
      return  $this->datosDelEstudianteConCed;
     }
     
    function getDatosEstudiante()
	{
		if ($this->datosEstudiante=='')
        {
           $c5 = new Criteria();
           $c5->add(DatoEstudiantePeer::CEDULA, $this->cedula);
           $this->datosEstudiante = DatoEstudiantePeer::doSelectOne($c5);
        }
      return  $this->datosEstudiante;
	}

     function getDatosAcademicos()
     {
     	    
     	if ($this->datosAcademicos=='')
     	{
     	    $c1= new Criteria();
     	    $c1->add(DatoAcademicoPeer::CF_ESTUDIANTE,$this->getCpEstudiante());
		    $this->datosAcademicos = AcademicoPeer::doSelectOne($c1);
		    
		}    
		return $this->datosAcademicos;
		    
     }

     function getDatosAcadEstudiante()
     {
     	    
     	if ($this->datosAcadEstudiante=='')
     	{
     	    $c1= new Criteria();
     	    $c1->add(DatoAcademicoPeer::CF_ESTUDIANTE,$this->getCpEstudiante());
		    $this->datosAcadEstudiante = DatoAcademicoPeer::doSelectOne($c1);
		    
		}    
		return $this->datosAcadEstudiante;
		    
     }     
     
     function getDatosCarrera()
     {
     	
     	if ($this->datosCarrera==null)
     	{
     	    $c2= new Criteria();
     		$c2->add(CarreraPeer::CP_CARRERA,$this->getCfCarrera());
		    $this->datosCarrera = CarreraPeer::doSelectOne($c2);
		  
		}    
		return $this->datosCarrera;
     	
     }
     
    function getDatosDecanato()
     {
     	if ($this->datosDecanato=='')
     	{
     		$obj=new Carrera();
     	    $c3= new Criteria();
     	    $obj = $this->getDatosCarrera();
     		$c3->add(DecanatoPeer::CP_DECANATO,$obj->getCfDecanato());
		    $this->datosDecanato = DecanatoPeer::doSelectOne($c3);
		        
		}    
		return $this->datosDecanato;
     	
     }
     
  	function getDatosDirecc()
     {
     	if ($this->datosDirecc==null)
     	{
     		$c4= new Criteria();
     	    $c4->add(DireccionPeer::CF_ESTUDIANTE,$this->getCpEstudiante());
		    $this->datosDirecc = DireccionPeer::doSelectOne($c4);
		        
		}    
		return $this->datosDirecc;
     	
     } 
      
     function getObjAteneaUsuarioConCed()
     {

        if ($this->objAteneaUsuarioConCed=='')
        {
           $c = new Criteria();
           $c->add(DatoEstudiantePeer::CEDULA,$this->getCedula());
           $c->addJoin(DatoEstudiantePeer::USUARIOATENEA_ID,AteneausuarioPeer::ID);
           $this->objAteneaUsuarioConCed = AteneausuarioPeer::doSelectOne($c);
        }
      return  $this->objAteneaUsuarioConCed;
     }
     
	function getSindesDireccion()
	{
		$idestudiante = $this->getCpEstudiante();
							
		if($idestudiante!='')
		{
			$c2 = new Criteria();
			$c2->add(DireccionPeer::CF_ESTUDIANTE, $idestudiante);
			$obj_direccion = DireccionPeer::doSelect($c2);
					
			foreach ($obj_direccion as $regdireccion)
			{
				if ($regdireccion)
				{
					$direccion = '';
					$aux = $regdireccion->getBarrio();
					if($aux)
					{
						$direccion.= "Barrio ".$aux.", ";
					}
					$aux = $regdireccion->getSector();
					if($aux)
					{
						$direccion.= "Sector ".$aux.", ";
					}
					$aux = $regdireccion->getUrbanizacion();
					if($aux)
					{
						$direccion.= "Urb. ".$aux.", ";
					}
					$aux = $regdireccion->getAvenida();
					if($aux)
					{
						$direccion.= "Av. ".$aux.", ";
					}
					$aux = $regdireccion->getCalle();
					if($aux)
					{
						$direccion.= "calle ".$aux.", ";
					}
					$aux = $regdireccion->getCarrera();
					if($aux)
					{
						$direccion.= "carr ".$aux.", ";
					}
					$aux = $regdireccion->getVereda();
					if($aux)
					{
						$direccion.= "vereda ".$aux.", ";
					}
					$aux = $regdireccion->getEdificioCasa();
					if($aux)
					{
						$direccion.= "Edif/Casa ".$aux.", ";
					}
					$aux = $regdireccion->getNumeroApartamento();
					if($aux)
					{
						$direccion.= "Apto. num. ".$aux.", ";
					}
	
						return $direccion;
				}
				else {
					return 'NO ENCONTRADO';
				}	
			}
		}
	}

	function getSindesCiudad()
	{
		$idestudiante = $this->getCpEstudiante();
							
		if($idestudiante!='')
		{
			$c2 = new Criteria();
			$c2->add(DireccionPeer::CF_ESTUDIANTE, $idestudiante);
			$obj_direccion = DireccionPeer::doSelect($c2);
					
			foreach ($obj_direccion as $regdireccion)
			{
				if ($regdireccion)
				{
					$ciudad = $regdireccion->getCfCiudad();
								
					if($ciudad!='')
					{
						$c3 = new Criteria();
						$c3->add(CiudadPeer::CP_CIUDAD, $ciudad);
						$obj_ciudad = CiudadPeer::doSelect($c3);
							
						foreach ($obj_ciudad as $regciudad)
						{
							if ($regciudad)
							{
								return $regciudad->getNombre();
							}
						}
					}
				}
			}
		}
	}

	function getSindesEstado()
	{
		$idestudiante = $this->getCpEstudiante();

		if($idestudiante!='')
		{
			$c2 = new Criteria();
			$c2->add(DireccionPeer::CF_ESTUDIANTE, $idestudiante);
			$obj_direccion = DireccionPeer::doSelect($c2);

			foreach ($obj_direccion as $regdireccion)
			{
				if ($regdireccion)
				{
					$ciudad = $regdireccion->getCfCiudad();

					if($ciudad!='')
					{
						$c3 = new Criteria();
						$c3->add(CiudadPeer::CP_CIUDAD, $ciudad);
						$obj_ciudad = CiudadPeer::doSelect($c3);
							
						foreach ($obj_ciudad as $regciudad)
						{
							if ($regciudad)
							{
								$municipio = $regciudad->getCfMunicipio();
													
								if($municipio!='')
								{
									$c4 = new Criteria();
									$c4->add(MunicipioPeer::CP_MUNICIPIO, $municipio);
									$obj_municipio = MunicipioPeer::doSelect($c4);
						
									foreach ($obj_municipio as $regmunicipio)
									{
										if ($regmunicipio)
										{
											$estado = $regmunicipio->getCfEstado();
													
											if($estado!='')
											{
												$c5 = new Criteria();
												$c5->add(EstadoPeer::CP_ESTADO, $estado);
												$obj_estado = EstadoPeer::doSelect($c5);
							
												foreach ($obj_estado as $regestado)
												{
													if ($regestado)
													{
														return $regestado->getNombre();
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}

     function getObjDatoEstudiante()
     {

        if ($this->objDatoEstudiante=='')
        {
           $c = new Criteria();
           $c->add(DatoEstudiantePeer::CEDULA,$this->getCedula());
           $this->objDatoEstudiante = DatoEstudiantePeer::doSelectOne($c);
        }
      return  $this->objDatoEstudiante;
     }

	 function getObjDatoAcademico()
	 {
	 	if ($this->objDatoAcademico=='')
	 	{
			$c = new Criteria();
			$c->add(DatoAcademicoPeer::CF_ESTUDIANTE,$this->getCpEstudiante());
			$this->objDatoAcademico = DatoAcademicoPeer::doSelectOne($c);
	 	}
	 	return $this->objDatoAcademico;
	 }

	 function getNomCarrera()
	 {
		if ($this->nomCarrera == '')
		{
			$c = new Criteria();
			$c->add(CarreraPeer::CP_CARRERA,$this->getCfCarrera());
			$this->nomCarrera = CarreraPeer::DoSelectOne($c)->getNombre();
		}
		return $this->nomCarrera;
	 }

	 function getObjsMaterias()
	 {
	 	if($this->objsMaterias==null)
	 	{
	 		$c = new Criteria();
	 		$c->add(MateriasEstudiantePeer::CF_ESTUDIANTE,$this->getCpEstudiante());
	 		$c->addJoin(MateriasEstudiantePeer::CF_MATERIA,MateriaPeer::CP_MATERIA);
	 		$this->objsMaterias = MateriaPeer::doSelect($c);
	 	}
	 	return $this->objsMaterias;
	 }

	 function getObjsEstudiantesCondicion($condicion)
	 {
	 	if ($this->objsEstudiantesCondicion==null)
	 	{
	 		$c = new Criteria();
	 	    $c->add(MateriasEstudiantePeer::CONDCION,$condicion);
	 	    $this->objsEstudiantesCondicion = MateriasEstudiantePeer::doSelect($c);
	 	}
	 	return $this->objsEstudiantesCondicion;
	 }
	 
  function getDatosCita()
      {
         if($this->datosCita=='')	
         {
           $c4=new Criteria();
           $c4->add(DatoEstudiantePeer::CEDULA, $this->getCedula());
           $c4->addJoin(DatoEstudiantePeer::ID, CitaPeer::SOLICITANTE_ID);
           $c4->add(CitaPeer::FECHA, date('Y-m-d'));
         
           $this->datosCita = CitaPeer::doSelectOne($c4);          	
          	
         }
        
        return $this->datosCita; 
    	
      }
     
     
	function getDatosConsultas()
     {

        if ($this->datosConsultas=='')
        {
           $c = new Criteria();
           $c->add(DatoEstudiantePeer::CEDULA, $this->cedula);
           $c->addJoin(DatoEstudiantePeer::ID, ConsultaPeer::ESTUDIANTE_ID);
           $this->datosConsultas = ConsultaPeer::doSelect($c);
                             
        }
      return  $this->datosConsultas;
     }  
     
     
     function getDatosFamiliares()
	{
		if ($this->datosFamiliares=='')
        {
           $c = new Criteria();
           $c->add(GrupoFamiliarPeer::CF_ESTUDIANTE, $this->getCpEstudiante());
           $this->datosFamiliares = GrupoFamiliarPeer::doSelectOne($c);
        }
      return  $this->datosFamiliares;
	}
	     
	function getDatosHistoriaMedica()
	{
		if ($this->datosHistoriaMedica=='')
        {
           $c = new Criteria();
           $c->add(TabHistoriaMedicaPeer::CEDULA, $this->cedula);
           $this->datosHistoriaMedica = TabHistoriaMedicaPeer::doSelectOne($c);
        }
      return  $this->datosHistoriaMedica;
	}
	
	function getDatosBeneficios()
	{
		if ($this->datosBeneficios=='')
        {
           $c = new Criteria();
           $c->add(BeneficioEstudiantePeer::CF_ESTUDIANTE, $this->getCpEstudiante());
           $c->addJoin(BeneficioEstudiantePeer::CF_BENEFICIO, BeneficioPeer::CP_BENEFICIO);
           $this->datosBeneficios = BeneficioPeer::doSelectOne($c);
        }
      return  $this->datosBeneficios;
	}
	
  
	function getMateriasRepetidas()
   {
   	if ($this->materiasRepetidas==null)
        {
           $c = new Criteria();
           $c->add(HistoricoMateriasEstudiantePeer::CF_ESTUDIANTE, $this->getCpEstudiante());
           $c->add(HistoricoMateriasEstudiantePeer::CONDICION, '0',Criteria::GREATER_THAN);
           $c->addJoin(HistoricoMateriasEstudiantePeer::CF_MATERIA, MateriaPeer::CP_MATERIA);
           $this->materiasEstud = MateriaPeer::doSelect($c);
        }
      return  $this->materiasEstud;

   }

	 function getSemestreA($semestre)
   {
   	 switch ($semestre)
   	 {
     case '1':{return '1';
     	       break;}
     case '2':{return '1';
     	       break;}
     case '3':{return '2';
     	       break;}
     case '4':{return '3';
     	       break;}
     case '5':{return '4';
     	       break;}
     case '6':{return '5';
     	       break;}
     case '7':{return '6';
     	       break;}
     case '8':{return '7';
     	       break;}
     case '9':{return '8';
     	       break;}
     case '10':{return '9';
     	       break;}

   	 }
   }
	
	
   function getMateriasEstud()
   {
   	if ($this->materiasEstud==null)
        {
           $c4 = new Criteria();
           $semestre=$this->getDatosAcademicos()->getSemestre();
           $semestr=$this->getSemestreA($semestre);
           $c4->add(HistoricoAcademicoPeer::CF_ESTUDIANTE, $this->getCpEstudiante());
           $c4->add(HistoricoAcademicoPeer::SEMESTRE, $semestr);
           $c4->addJoin(HistoricoAcademicoPeer::CF_ESTUDIANTE,HistoricoMateriasEstudiantePeer::CF_ESTUDIANTE);
           $c4->addJoin(HistoricoMateriasEstudiantePeer::CF_MATERIA, MateriaPeer::CP_MATERIA);
           $this->materiasEstud = MateriaPeer::doSelect($c4);
        
        }
      return  $this->materiasEstud;

   }

   function getNumConsulta()
      {
         if($this->numConsulta=='')	
         {
           $c=new Criteria();
           $c->add(DatoEstudiantePeer::CEDULA, $this->getCedula());
           $c->addJoin(DatoEstudiantePeer::ID, ConsultaPeer::ESTUDIANTE_ID);
           $c->add(ConsultaPeer::FECHA, date('Y-m-d'));
           $this->numConsulta = ConsultaPeer::doSelectOne($c);          	
          	
         }
        
        return $this->numConsulta; 
    	
      }  
   
   
	 
}
